package cn.tedu.micro.demo.canal.handler;

import cn.tedu.micro.demo.canal.po.StationCanalPO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import top.javatool.canal.client.annotation.CanalTable;
import top.javatool.canal.client.handler.EntryHandler;

@Component
@Slf4j
@CanalTable("charging_station")
public class StationHandler implements EntryHandler<StationCanalPO> {
    //可以自定义覆盖 父类方法 insert update delete的逻辑
    @Override
    public void insert(StationCanalPO stationCanalPO) {
        //TODO 将新增的po对象读取过来之后 写入redis 或者es 或者组织消息发送
        log.info("监听新增数据 stationCanalPO:{}",stationCanalPO);
        EntryHandler.super.insert(stationCanalPO);
    }
    @Override
    public void update(StationCanalPO before, StationCanalPO after) {
        //明确表示出来更新的是哪些字段 没有更新的属性是null,但是一定传递id
        log.info("监听更新数据,before:{},after:{}",before,after);
        EntryHandler.super.update(before, after);
    }
    @Override
    public void delete(StationCanalPO stationCanalPO) {
        log.info("监听删除数据,stationCanalPO:{}",stationCanalPO);
        EntryHandler.super.delete(stationCanalPO);
    }
}
